Weka でCSVファイルをARFFファイルに変換してみる
ARFFファイルの中身を手動で更新して、Nominal型をDate型にしてみました。
2024.07.03
機械学習ソフトウェアのWekaは、ARFFファイルを扱います。
CSVファイルをOpenすると、内部的にはARFFファイルに変換しているようで、NominalやNumericなどを表示します。
一方で、ARFFファイルには次のデータ型があります。(他、relationalが将来予約されている模様)
- Numeric(数値。整数と実数)
- Nominal(公称値。選択式みたいなやつ)
- String(文字列)
- Date(日付)
冒頭のCSVを開いた様子を見ると、日時の部分が「Date」ではなく「Nominal」になっています。
これは嬉しく無さそうなので、手動でDate型に更新してみました。
おすすめの方
- Weka でCSVファイルを開きたい方
- Weka でCSVファイルを開いてARFFファイル保存したい方
- ARFFファイルでDate型の書き方を知りたい方
CSVファイルを用意する
日時,温度,湿度
2024/06/24 11:30:00,32.6,82.2
2024/06/24 11:40:00,29.5,82
2024/06/24 11:50:00,24.5,63
2024/06/24 12:00:00,25.2,79.4
2024/06/24 12:10:00,29.9,74.7
2024/06/24 12:20:00,36,65.9
2024/06/24 12:30:00,34.7,65.8
2024/06/24 12:40:00,32.9,59.1
WekaのArffViewerでCSVファイルを開く
手順は下記を参考にしてください。
日時の部分が「Date」ではなく「Nominal」になっています。
ARFFファイルとして保存する
「File」の「Save as」を選んで、arffファイルとして保存します。
ARFFファイルを手動で更新する
保存されたARFFファイルは次のようになっています。
@relation test
@attribute 日時 {'2024/06/24 11:30:00','2024/06/24 11:40:00','2024/06/24 11:50:00','2024/06/24 12:00:00','2024/06/24 12:10:00','2024/06/24 12:20:00','2024/06/24 12:30:00','2024/06/24 12:40:00'}
@attribute 温度 numeric
@attribute 湿度 numeric
@data
'2024/06/24 11:30:00',32.6,82.2
'2024/06/24 11:40:00',29.5,82
'2024/06/24 11:50:00',24.5,63
'2024/06/24 12:00:00',25.2,79.4
'2024/06/24 12:10:00',29.9,74.7
'2024/06/24 12:20:00',36,65.9
'2024/06/24 12:30:00',34.7,65.8
'2024/06/24 12:40:00',32.9,59.1
このうち、「@attribute 日時」の行を書き換えます。具体的には、date型にして、日時フォーマットを記載します。これはJavaのルールに従います。
@relation test
@attribute 日時 date 'yyyy/MM/dd HH:mm:ss'
@attribute 温度 numeric
@attribute 湿度 numeric
@data
'2024/06/24 11:30:00',32.6,82.2
'2024/06/24 11:40:00',29.5,82
'2024/06/24 11:50:00',24.5,63
'2024/06/24 12:00:00',25.2,79.4
'2024/06/24 12:10:00',29.9,74.7
'2024/06/24 12:20:00',36,65.9
'2024/06/24 12:30:00',34.7,65.8
'2024/06/24 12:40:00',32.9,59.1
WekaのArffViewerでARFFファイルを開く
手動更新したARFFファイルを開くと、日時の部分がDateになっていました。バッチリですね。
さいごに
ARFFファイルの中身を手動で更新して、date型にしてみました。
参考になれば幸いです。